* special value "Radians", cos(pi*Radians) is always -1
* improved background processing
* support for minimal AppleEvents
* reads UNIX or PC style text files
* new callbacks allow XFuns to create windows etc.
* distribution contains several XFuns including: 3D plotting, slider bar control of variables, FFT routines for signal processing, sound synthesizer routines etc.
Bug Fixes:
* fixed a "conflict" with an extension called LOBE
* table command now always does Nsteps rows
* stack cushion increased to avoid crash on deep recursions
* sometimes printed text at very small size
* assigning unknown values to an array gave garbage 1st element
* assigning unknown value to a scalar did nothing, now assigns NAN
* double loaded XFun if it was the last file in the directory list
* error handling for {1,2,,3}
New documentation:
* The XFun "intro help" adds some very simple examples to the help menu. If you don't need these, just move this file to the trash.
* The file "MathPad.doc" remains essentially the same but has been updated for version 2.4.
* The file "Plotting" has been updated.
* The files "Log Axes","3D Plotting" and "Customizing" have been added.
* Examples have been updated slightly. Fixed a bug in "minimize".
* New examples: "harmonics", "Chebshev", "spectrogram" and "pulse amp"
* More XFun kit documentation.
~
--------------- Details, Details ---------
----- MathPad has been reworked to allow it to be compiled for either 68K or PowerPC CPUs. Both applications are included in this distribution. The applications should function identically except for speed and small numerical differences due to the different floating point format on the PowerPC.
-- The 68K version NOW REQUIRES SYSTEM 7 and a 68020 or better processor.
-- The 68K application should give a minor speed increase (a few %) over version 2.3.
-- The PowerPC application is about 3 times faster than running the 68K application in emulation.
----- An array of 3 or more functions now generates a multi trace plot.
f(t)[i] = 100*i/(t+i) dim[10] -- an array of 10 functions
----- Options for log axes have been added. Log axes can be turned on and off via the Options... dialog. They can also be controlled individually for each strip via special variables.
----- Variables have been added to allow turning parts of the axis on or off for each strip. Xshowgrid, Xticklabels, Yshowgrid, Yticklabels, Zshowbar
-- Ydiv (or Xdiv) can be used to control the number of labeled ticks on the log axis. The concept of distance between ticks doesn't quite apply to a log axis but the basic idea is the same. Higher value divs gives fewer ticks. Ydiv=1 gives all ticks. Ydiv=10 labels only the decades. Ydiv=20 labels every other decade.
newaxis
Ydiv:=3:
Ylogaxis:=on:
Xlogaxis:=on:
plot X
------- The meaning of the "Ystrips" has been expanded to allow control over the relative height of each strip. Ystrips can either be set to the number of equal height strips (Ex. Ystrips=3) or it can be set to an array where the elements give a relative height for each strip.
Ystrips = {1.7,1,1} -- 1st strip is given 70% more
------ Boolean operators (and or not known unknown) and relational operators ( > < == != >= <= ) are now allowed in any expression. One effect of this is that the restriction against using parens in "when" or "while" conditions has been removed. MathPad now uses the C convention that any expression can be used as a boolean. Non-zero values mean true, 0 means false. The result of a comparison operator will be 0 for false and 1 for true. The == form of the equal comparison operator must usually be used to avoid confusion.
a=2
a when 1=1:2; -- '=' as comparison is still allowed here
a == 1+1:1; -- '==' is required here
{1,2,3,4,5} == {5,4,3,2,1}:{0,0,1,0,0}
{1,1,1,0,0} and {0,1,0,1}:{0,1,0,0,0}
{1,1,1,0,0} or {0,1,0,1}:{1,1,1,1,?}
------ The reserved word "Radians" can be used for trig calculations that are independent of the Degrees/Radians menu option choice. The value of Radians is 1 when radians are selected and 57.3 when degrees are selected.
cos(pi*Radians):-1; -- -1 for either Degrees/Radians setting
------ The zoom box now sets the window to the current printer page aspect. This allows a sort of print preview so you can position labels appropriately for printout. Option zoom will expand the window to the full screen.
------ MathPad now supports minimal AppleEvents so it can be controlled by AppleScript etc. To provide a quick and dirty means of scripting batch plots, the PrintDocuments event will open the document, evaluate it and then print the plot.
------ Background processing has been changed to take smaller time slices. This means that running MathPad in the background should cause a less noticeable load on your system. Also the plot window now stays visible during background processing. In some cases it will defer updating until it finishes processing.
------ MathPad now automatically converts UNIX (LF) or PC (CRLF) line terminators to Mac (CR) format when it reads in a document. This makes it easier to handle text files from other machines or from web browsers that don't know how to save Mac text files.